#!/bin/bash

#Panel for BigLinux
#
#Authors:
#  Bruno Goncalves Araujo <www.biglinux.com.br>
#
#License: GPLv2 or later
#################################################


. /usr/share/bigcontrolcenter/default/theme-categories.sh.htm

#Translation
export TEXTDOMAINDIR="/usr/share/locale-langpack"
export TEXTDOMAIN=bigcontrolcenter-hardware-video

echo '
<script language="JavaScript">
window.resizeTo(640,480);
function NoResize(){
  window.resizeTo(640,480);
}
</script>
'

title=$"Video e monitor"
apply=$"Aplicar"
close=$"Sair"
tip_resolucao=$"Lembre de nao utilizar uma resolucao maior que a suportada pelo monitor."
tip_driver=$"O driver vesa e generico e deve funcionar com todas as placas de video, porem sem utilizar recursos avancados ou 3D."
tip_frequencia=$"Lembre de nao utilizar uma resolucao maior que a suportada pelo monitor.<br>Essa opcao tera efeito somente se a resolucao nao estiver em modo de deteccao automatica."
tip_edid=$"EDID (Extended Display monitores Information Data)<br>Informacoes enviadas pelo monitor que informam resolucoes e frequencias aceitas, utilizar EDID evita que sejam usados valores nao suportados pelo monitor, porem alguns modelos informam valores incorretos entao e necessario que o sistema nao utilize EDID."
tip_restaurar=$"Limpa as configuracoes personalizadas e retorna a configuracao padrao."
tip_manual=$"Para configuracoes mais especificas."
tip_ati=$"Configuracao recomendada pelos desenvolvedores do driver fglrx."
tip_nvidia=$"Configuracao recomendada pelos desenvolvedores do driver nvidia."
tip_info=$"Descubra qual a placa de video do seu computador"

#title


echo "<title>$title</title><body onResize=\"NoResize();\">"

#header
open_header
echo "$title" '</font><br>' $"Configure o monitor e a placa de video."
close_header

#O uso do echo pode ser separado em diversos pedacoes dentro do mesmo comando
#O uso de aspas simples faz o sistema exibir exatamente o que esta escrito
#Quando se utiliza aspas duplas o sistema executa algumas partes do codigo antes de passar a resposta, entre essas execucoes inclui a interpretacao de variaveis
#Para incluir textos a serem exibidos ao usuario utilize aspas duplas com $ antes, para que funcione o sistema de tradução, exemplo: $"texto"
#No exemplo abaixo o memso comando echo foi aberto e fechado diversas vezes de acordo com a necessidade, aspas simples, duplas e duplas com traducao.
echo '<center><table width=95%><tr><td>'
echo "<form action=submit.sh.htm method=get>"
echo '<input type="hidden" name="bigxorg" value="yes" />'

#######
#driver
#######
ORI_IFS=$IFS
IFS=$'\n'
echo '<center><table><tr><td width=20%>' $" Driver:" "<br><select name=\"driver\" $mouseover_open $tip_driver $mouseover_close>" '
<option value="">' $"Automatico" '</option>'
for i in $(ls /usr/lib/xorg/modules/drivers | sed 's/_drv.so//g;/.so/d;/^v4l$/d'); do

if [ "$i" = "$(sed -e '/./{H;$!d;}' -e 'x;/Section "Device"/!d' /etc/X11/xorg.conf | grep Driver | sed 's/.* "//g;s/".*//g')" ]
then
echo "<option value=\"$i\" selected>$i</option>"
else
echo "<option value=\"$i\">$i</option>"
fi

done
echo '</select>'


##########
#resolucao
##########
echo '</td><td width=20%>' $" Resolucao:"
echo "<BR><select name=\"xscreen\" $mouseover_open $tip_resolucao $mouseover_close>" '
<option value="">' $"Automatico" '</option>'
for i in $(cat /usr/share/bigcontrolcenter/categories/hardware/video/xscreen); do

if [ "$( echo "$i" |  sed 's/ Wide//g')" = "$(sed -e '/./{H;$!d;}' -e 'x;/Section "Monitor"/!d' /etc/X11/xorg.conf | grep Modeline | sed 's/.* "//g;s/".*//g')" ]
then
echo "<option value=\"$(echo "$i" | sed 's/ Wide//g')\" selected>$i</option>"
else
echo "<option value=\"$(echo "$i" | sed 's/ Wide//g')\">$i</option>"
fi

done


echo '</select></td><td width=20%>' $" Frequencia:" "<br>
<select name=\"refresh\" $mouseover_open $tip_frequencia $mouseover_close>
<option value=\"\">" $"Automatico" '</option>'
for i in $(cat /usr/share/bigcontrolcenter/categories/hardware/video/refresh); do

if [ "$i" = "$[$(sed -e '/./{H;$!d;}' -e 'x;/Section "Monitor"/!d' /etc/X11/xorg.conf | grep "#" | sed 's/\..* Hz.*//g;s/.* //g') + 1 ]" ]
then
echo "<option value=\"$i\" selected>$i</option>"
else
echo "<option value=\"$i\">$i</option>"
fi

done
echo '</select></td><td width=20%><br>'

  if [ "$(grep NoEdidModes /etc/X11/xorg.conf)" = "" ]
  then
      edid_check="checked"
  fi

  echo "<INPUT TYPE=checkbox ID=edid NAME=edid VALUE=no $edid_check  $mouseover_open $tip_driver $mouseover_close><label for=edid $mouseover_open $tip_driver $mouseover_close>" $"Utilizar EDID."'</label></td></tr></table><br>'

echo '</form></center>'
IFS=$ORI_IFS

echo "<br>"
echo "<a href=\"file:///usr/share/bigbashview/run.run?/usr/share/bigcontrolcenter/categories/hardware/video/info\" $mouseover_open $tip_info $mouseover_close>" $"Informacoes sobre a placa de video." '</a><p style="margin: 4px 4px 4px 0px;">'
echo "<a href=\"submit.sh.htm?restaurar=yes\" $mouseover_open $tip_restaurar $mouseover_close>" $"Restaurar configuracao de video padrao." '</a><p style="margin: 4px 4px 4px 0px;">'
echo "<a href=\"file:///usr/share/bigbashview/run.run?bigsudo kate /etc/X11/xorg.conf\" $mouseover_open $tip_manual $mouseover_close>" $"Abrir arquivo /etc/X11/xorg.conf para edicao manual." '</a><p style="margin: 4px 4px 4px 0px;">'

if [ -e "/usr/bin/aticonfig" ]
then
    echo "<a href=\"submit.sh.htm?ati=yes\" $mouseover_open $tip_ati $mouseover_close>" $"Utilizar configuracao oficial para placas ATI." '</a><p style="margin: 4px 4px 4px 0px;">'
fi


if [ -e "/usr/bin/nvidia-xconfig" ]
then
    echo "<a href=\"submit.sh.htm?nvidia=yes\" $mouseover_open $tip_nvidia $mouseover_close>" $"Utilizar configuracao oficial para placas NVIDIA." '</a><p style="margin: 4px 4px 4px 0px;">'
fi


echo "<br><b>" $"Dicas:" "</b><p style=\"margin: 4px 4px 4px 0px;\">"
echo $"1 - Antes de utilizar esse painel recomenda-se que utilize as outras opcoes do painel anterior." "<p style=\"margin: 4px 4px 4px 0px;\">"
echo $"2 - Todas as alteracoes feitas nesse painel irao ser aplicadas no arquivo /etc/X11/xorg.conf." "<p style=\"margin: 4px 4px 4px 0px;\">"
echo $"3 - Para verificar o resultado da configuracao e necessario reiniciar o modo grafico ou reiniciar todo o computador." "<p style=\"margin: 4px 4px 4px 0px;\">"
echo $"4 - Se possivel efetue essas configuracoes primeiro no Live-CD para verificar a compatibilidade da configuracao com o computador."

echo "</div><div id=\"rodape\"><button type=submit value= $apply  >   <img src=\"/usr/share/bigcontrolcenter/default/images/ok.png\" style=\"vertical-align:top\" />  $apply   </button>  <button type=button value= $close onClick= parent.location='/usr/share/bigbashview/exemplo2.sh.htm?close=True'>   <img src=\"/usr/share/bigcontrolcenter/default/images/cancel.png\" style=\"vertical-align:top\"  />  $close     </button></div>"

